package com.sanhe.roller.util;

import static com.menu.app.util.FunctionCode.START1;
import static com.menu.app.util.FunctionCode.START2;
import static com.menu.app.util.port.SerialHandle.byte2int;

import android.content.Intent;
import android.os.Looper;

import com.menu.app.MyApp;
import com.menu.app.util.port.SerialHandler;
import com.menu.app.util.port.SerialManage;
import com.plata.base.utils.WeakHandler;

public class MySerialHandler implements SerialHandler {
    private static final String TAG = "MySerialHandler";
    WeakHandler h = new WeakHandler(Looper.getMainLooper());

    protected void sendTouchEvent(byte[] data) {
        int i = data.length;
        byte[] event = new byte[3 + i + 2];
        event[0] = START1;
        event[1] = START2;
        event[2] = (byte) (i + 2);
        byte[] crc = Crc16Utils.getData(data);
        System.arraycopy(crc, 0, event, 3, crc.length);
        SerialManage.getInstance().send(event);
    }

    @Override
    public int dealMsg(Byte[] data, boolean ignore) {
        boolean deal = true;
        try {
            if (data[4] == 0 && data[5] == (byte) 0x84) {
//                StartEvent e = Models.Companion.get().getStartEvent();
//                if (!e.getValue()) {
//                    e.postValue(true);
//                }
                if (data[6] == 0x5a && data[7] == 1) {
                    h.post(new Runnable() {
                        @Override
                        public void run() {
                            gotoPage(byte2int(data[9]), ignore);
                        }
                    });
                }
            } else if (data[3] == (byte) 0x82) {


            }
        } catch (Throwable e) {
            e.printStackTrace();
            deal = false;
        }
        int i = Integer.MIN_VALUE;
        if (deal) {
            i = (byte2int(data[4]) * 256) + byte2int(data[5]);
        }
        return i;
    }

    private void gotoPage(int index, boolean ignore) {
        Class c = null;
//        if (index < 8) {
//            c = ModeActivity.class;
//        } else if (index < 12) {
//            c = WorkActivity.class;
//        } else if (index < 16) {
//            c = Work2Activity.class;
//        } else if (index < 20) {
//            c = Work3Activity.class;
//        } else if (index < 24) {
//            c = PwdActivity.class;
//        } else if (index < 28) {
//            c = SettingsActivity.class;
//        } else if (index < 32) {
//            c = TempActivity.class;
//        } else if (index < 36) {
//            c = FlowActivity.class;
//        } else if (index < 40) {
//            c = DetailSettingActivity.class;
//        } else if (index < 44) {
//            c = LongVrefActivity.class;
//        } else if (index < 48) {
//            c = MaxFrequencyActivity.class;
//        } else if (index < 52) {
//            c = PModeActivity.class;
//        } else if (index < 56) {
//            c = CountLimitActivity.class;
//        } else if (index < 60) {
//            c = CountActivity.class;
//        } else if (index < 64) {
//            c = PulseChangePwdActivity.class;
//        } else if (index < 68) {
//            //language no need
//        } else if (index < 70) {
//            c = Mode2Activity.class;
//        } else if (index < 74) {
//            c = RedLightActivity.class;
//        }
        if (c == null || ignore) {
            return;
        }
        Intent i = new Intent(MyApp.getApp(), c);
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        MyApp.getApp().startActivity(i);
    }
}

